"""
PSA 加密算法在网络安全世界中无处不在，它利用了极大整数因数分解的困难度，数据越大，安全系数越高，给定一个 32 位正整数，请对其进行因数分解，
找出是哪两个素数的乘积
输入描述：
如果成功找到，以单个空格分割，从小到大输出俩个素数，分解失败，请输出-1 -1
示例1:
输入：
15
输出：
3 5
说明：因数分解后，找到俩个素数3和5，使得3*5=15，按从小到大排列后，输出3 5
示例2:
输入：
23
输出
-1 -1
说明：通过因数分解，找不到任何素数，使得他们的乘积为27，输出-1 -1
"""


# 判断是不是质数
def is_zhishu(num):
    # 特殊情况的质数
    if num <= 1:
        return False
    if num == 2:
        return True
    # 2 的倍数都不是质数
    if num % 2 == 0:
        return False
    # 通常情况下的质数
    i = 3
    while i * i <= num:
        if num % i == 0:
            return False  # 点啊
        i += 2
    return True


def paichu(num):
    for i in range(2, num // (2 + 1)):  # 这里加一个括号看下
        if num % i == 0 and is_zhishu(i) and is_zhishu(num // i):
            return i, num // i
    return -1, -1  # 别点了，重新 debug，好了，停止


num = int(input())
result = paichu(num)
print(result[0], result[1])
